/**
 * Copyright (C), 2001-2031, www.bosssof.com.cn
 * FileName: Enum.java
 * Author: YuXingZh
 * Date: 16/5/2024 上午10:42
 * Description:
 * <p>
 * History:
 * Date          Author   Version  Desc
 * 2024-01-01    bosssoft  1.0.0   initialize this file
 */
package org.boss.exception;

/**
 * 自定义异常类，用于处理特定的业务逻辑异常。
 *
 * @className: MyCustomException
 * @description: 该异常类用于封装自定义的错误信息和原因，以便在业务逻辑中进行异常处理。
 * 解决什么问题：
 *  当业务逻辑中出现特定的错误情况时，使用该异常类可以更准确地传达错误信息。
 * 主要方法：
 *  构造方法1: 使用错误信息创建异常实例。
 *  构造方法2: 使用错误信息和原因（另一个Throwable对象）创建异常实例。
 * 注意事项：
 *  该类应该在捕获到具体业务逻辑错误时使用，而不是用于替代通用的异常处理。
 * @author: zhuchen
 * @date: 2024年05月15日 15:13
 * @since 1.0
 */

public class MyCustomException extends Exception {
    private final BizCodeEnum errorCode;

    /**
     * 使用指定错误信息和错误码构造一个新的异常。
     *
     * @param message  异常发生时的描述信息
     * @param errorCode 业务错误码
     */
    public MyCustomException(String message, BizCodeEnum errorCode) {
        super(message);
        this.errorCode = errorCode;
    }

    /**
     * 使用指定错误信息、错误码和原因构造一个新的异常。
     *
     * @param message  异常发生时的描述信息
     * @param errorCode 业务错误码
     * @param cause    异常发生的原因
     */
    public MyCustomException(String message, BizCodeEnum errorCode, Throwable cause) {
        super(message, cause);
        this.errorCode = errorCode;
    }

    public BizCodeEnum getErrorCode() {
        return errorCode;
    }
}